home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 March / Macworld (1998-03) (Disk 1).dmg / Shareware World / Utilities / Text Processing / Alpha / Tcl / Menus / internetConfigMenu.tcl < prev    next >
Encoding:
Text File  |  1997-10-09  |  3.8 KB  |  161 lines  |  [TEXT/ALFA]

  1. # nowrap
  2.  
  3. alpha::menu internetConfigMenu 0.1 "•139" in_menu {} uninstall this-file \
  4.   help {file "Internet Config"}
  5.  
  6. proc internetConfigMenu {} {}
  7.  
  8. menu -n $internetConfigMenu -p internetProc {
  9.     "menu -n urls {}"
  10.     "/'<I<OpickUrl"
  11.     (-
  12.     goTo
  13.     help
  14.     (-
  15.     webBrowser
  16.     newsClient
  17.     mailClient
  18.     finger
  19.     "/ptelnet"
  20.     (-
  21.     ftpClient
  22.     gopherClient
  23.     telnetClient
  24.     (-
  25.     resolveUrl
  26.     viewHtmlFile
  27. }
  28.  
  29.  
  30. proc internetProc {menu item} {
  31.     global HOME
  32.     
  33.     if {[catch {switch $item {
  34.         pickUrl icPickUrl
  35.         goTo icOpen
  36.         help {edit -r "$HOME:Help:Internet Config"}
  37.         webBrowser {launch -f [icGetPref -t 1 {helper•http}]}
  38.         mailClient {launch -f [icGetPref -t 1 {helper•mailto}]}
  39.         ftpClient {launch -f [icGetPref -t 1 {helper•ftp}]}
  40.         gopherClient {launch -f [icGetPref -t 1 {helper•gopher}]}
  41.         telnetClient {launch -f [icGetPref -t 1 {helper•telnet}]}
  42.         newsClient {launch -f [icGetPref -t 1 {helper•news}]}
  43.         resolveUrl {icURL [getSelect]}
  44.         viewHtmlFile htmlSendWindow
  45.         telnet {catch telnet}
  46.         finger {catch finger}
  47.     }}]} {
  48.         alertnote "Despite what Internet Config says, you should reboot after using IC for the first time."
  49.         launch -f "$HOME:Tools:Internet Config"
  50.     }
  51. }
  52.  
  53.  
  54. proc icPickUrl {} {
  55.     global savedUrls
  56.     if {![catch {listpick -p "Pick URL:" [lsort [array names savedUrls]]} res]} {
  57.         icURL $savedUrls($res)
  58.     }
  59. }
  60.  
  61.  
  62. proc rebuildUrlMenu {} {
  63.     global urlMenu savedUrls
  64.     menu -m -n urls -p urlProc {
  65.         "Add"
  66.         "View"
  67.         "Remove"
  68.         "(-"
  69.     }
  70.  
  71.     foreach url [lsort -ignore [array names savedUrls]] {
  72.         addMenuItem -m -l "  " urls $url
  73.     }
  74. }
  75.  
  76. rebuildUrlMenu
  77.  
  78. # http://www.cs.umd.edu/~keleher/localHome.html
  79. proc urlProc {menu item} {
  80.     global savedUrls modifiedArrVars
  81.     
  82.     if {$item == "Add"} {
  83.         if {[catch getSelect def]} {set def {}}
  84.         set res [dialog -h 105 -w 370 -b OK 10 80 70 100 -b Cancel 100 80 160 100 -t {Name:} 10 10 60 30 -t {URL:} 10 40 60 60 -e "" 60 10 360 30 -e $def 60 40 360 60 ] 
  85.         if {[lindex $res 0]} {
  86.             set nm [lindex $res 2]
  87.             set t [lindex $res 3]
  88.             if {![string length $t] || ![string length $nm]} {
  89.                 beep
  90.                 return
  91.             }
  92.             set savedUrls($nm) $t
  93.             lappend modifiedArrVars savedUrls
  94.             rebuildUrlMenu
  95.         }
  96.     } elseif {$item == "Remove"} {
  97.         set r [listpick -p "Remove which URL?" [lsort [array names savedUrls]]]
  98.         unset savedUrls($r)
  99.         removeArrDef savedUrls $r
  100.         rebuildUrlMenu
  101.     } elseif {$item == "View"} {
  102.         if {[info exists savedUrls]} {
  103.             set lines {}
  104.             foreach nm [array names savedUrls] {
  105.                 append lines [format "%-20s \"%s\"\r" $nm [set savedUrls($nm)]]
  106.             }
  107.             new -n {* Saved URLs *}
  108.             insertText $lines
  109.             shrinkWindow
  110.             setWinInfo dirty 0
  111.             setWinInfo read-only 1
  112.         }
  113.     } else {
  114.         icURL [set savedUrls($item)]
  115.     }
  116. }
  117.  
  118. if {![info exists lastFinger]} {set lastFinger ""}
  119. if {![info exists lastTelnet]} {set lastTelnet ""}
  120.  
  121. # 97-08-01 No longer requires the app has the exact name Finger
  122. proc finger {} {
  123.     global lastFinger modifiedVars
  124.     if {[catch {app::launchBack {'PnLF'}}]} {
  125.         alertnote "You must install Peter Lewis's \"Finger\" program."
  126.         return
  127.     }
  128.     set lastFinger [prompt {Who?} $lastFinger]
  129.     lappend modifiedVars lastFinger
  130.     watchCursor
  131.     set text [AEBuild -r 'PnLF' GURL FURL ---- "“$lastFinger”"]
  132.     new -n "* $lastFinger *"
  133.     if {[regexp {“(.*)”} $text dummy text]} {
  134.         insertText $text
  135.         shrinkWindow
  136.         setWinInfo dirty 0
  137.         setWinInfo read-only 1
  138.         goto 0
  139.     }
  140. }
  141.  
  142. # 97-08-01 Now works with other apps than NCSA telnet, like e.g. BetterTelnet,
  143. # or nifty telnet.
  144. proc telnet {} {
  145.     global lastTelnet modifiedVars telnetSig
  146.     app::launchAnyOfThese [list rlfT NCSA NIFt] telnetSig "Please locate your Telnet application:"
  147.  
  148.     if {[string length $lastTelnet]} {
  149.         set choice [eval prompt {Where?} [car $lastTelnet] Old $lastTelnet ]
  150.         set lastTelnet [removeDups [concat $choice $lastTelnet]]
  151.     } else {
  152.         set choice [set lastTelnet [prompt {Where?} $lastTelnet]]
  153.     }
  154.     
  155.     lappend modifiedVars lastTelnet
  156.     watchCursor
  157.     AEBuild -r '$telnetSig' GURL GURL ---- "“telnet://$choice”"
  158.     switchTo '$telnetSig'
  159. }
  160.  
  161.